//1.导入模块
const express = require('express')

//2.创建服务器
const app = express()

// 导入 session 中间件
const session = require('express-session')

// 配置 session 中间件
app.use(
  session({
    secret: 'encryption', // secret 属性的值可以为任意字符串
    resave: false, // 固定写法
    saveUninitialized: true, // 固定写法
  })
)

// 托管静态页面
app.use(express.static('./pages'))

// 解析 POST 提交过来的表单数据
app.use(express.urlencoded({ extended: false }))

// 登录的 API 接口
app.post('/api/login', (req, res) => {
  // 判断用户提交的登录信息是否正确
  if (req.body.username !== 'admin' || req.body.password !== 'admin123') {
    return res.send({
      status: 1,
      msg: '登录失败',
    })
  }

  // 将登录成功后的用户信息，保存到 session 中
  // 注意：只有配置了 express-session 这个中间后，才能通过 req 点出 session 这个属性
  req.session.user = req.body
  req.session.isLogin = true

  res.send({
    status: 0,
    msg: '登录成功',
  })
})

// 获取用户姓名的接口
app.get('/api/username', (req, res) => {
  // 从 session 中获取用户的昵称，响应给客户端
  // 判断用户是否登录
  if (!req.session.isLogin) {
    return res.send({
      status: 1,
      msg: '未登录',
    })
  }

  res.send({
    status: 0,
    msg: 'success',
    username: req.session.user.username,
  })
})

// 退出登录接口
app.post('/api/logout', (req, res) => {
  // 清空当前客户端对应的 session 信息
  req.session.destroy()
  res.send({
    status: 0,
    msg: '退出登录成功',
  })
})

//3.开启服务器
app.listen(4399, () => {
  console.log('服务器正在运行中 http://127.0.0.1:4399')
})

/* 
  状态码：
  1：表示失败
  0：表示成功
*/
